package com.csjy.migration.hnnd.business;

import com.csjy.migration.hnnd.*;
import com.csjy.migration.hnnd.annotation.BusinessDataConverter;
import com.csjy.migration.hnnd.dict.*;

import javax.script.ScriptException;
import java.sql.SQLException;
import java.sql.Timestamp;
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Collectors;

import static com.csjy.migration.hnnd.BusinessTool.getRigOrWro;

/**
 * 项目详情表
 */
@BusinessDataConverter(
        insertSql = "insert into ND_PROJECT_INFO (ID, PROJECT_NAME, PRO_CLASS, APPLY_COVERAGE, APPLY_TIME, MONEY_USED, PRO_TYPE, Bank, BANK_NAME, CUSTOM_MANAGER, MANAGER_PHONE, BANK_SUP, SUP_PHONE, REPAY_SOURCE, CUSTOMER_ID, PRODUCT_NAME, CREDIT_TIME, CREDIT_TIME_START, CREDIT_TIME_END, CREDIT_MONEY, COVERAGE_MONEY, YEAR_GUARANT_RATE, BAIL_RATE, PRO_STATUS, GUARANT_AGREE_NO, AGREE_TIME_START, AGREE_TIME_END, DEPART, DEPART_MANAGER, ACCEPT_STATUS, ASSURE_MSG, MANAGER_A, MANAGER_B, MANAGER_C, MANAGER_D, RISK_TYPE, CHECK_TIME, Office, CHIEF_AUDITOR, REMARK_MSG, CREATE_NAME, CREATE_BY, CREATE_DATE, UPDATE_NAME, UPDATE_BY, UPDATE_DATE, SYS_ORG_CODE, SYS_COMPANY_CODE, BPM_STATUS, PROJECT_CODE, PROJECT_NO, PRJ_NAME_FULL_PINYIN, PRJ_NAME_SIMPLE_PINYIN, REVIEW_SECRETARY, CUSTOMER_NAME, AREA, ADRESS, COPANY_DEPART, BUSINESS, IS_BLACKLIST, BLACKLIST_MSG, CUSTOMER_TYPE, CUSTOMER_SOURCE, DELETE_FLAG, CUSTOMER_SUBJECT_NATURE, INDUSTRY, SET_TIME, MASTER, MASTER_PHONE, WORK_ADDRESS, OPERATER, OPERATER_PHONE, OPERATER_JOB, LEGAL_REP, LEGAL_REP_PHONE, REGIST_MONEY, CIQ_NO, WORKER_NUMBER, HANDLE_TIME, MASTER_IDCARD, LEGAL_REP_IDCARD, BUSINESS_NO, ORG_NO, TAX_REGIST_NO, CREDIT_CARD_NO, SECOND_BUSINESS, BANK_ACCOUNT_NO, CREDIT_GRADE, CREDIT_GRADE_ORG, COMPANY_IMP_MSG, INDUSTRY_CODE, SEX, BIRTHDAY, EDUCATE, ID_CARD, REGIST_DEPART, WORK_DEPART, PHONE, FAMILY_TEL, INCOME, WORK_COMPANY, WORK_INDUSTRY, WORK_JOB, WORK_PHONE, MARRAY, MATE_NAME, MATE_PROFESSION, ESTATE, PERSONAL_IMP_MSG, FINANCE_PERIOD, TOTAL_ASSET, TOTAL_DEBT, ASSET_RATIO, CAPITAL_COLLECTION, NET_ASSET, NET_ASSET_RATIO, LAST_INCOME, LAST_PROFIT, LAST_CASH, LAST_TAX, CURRENT_INCOME, CURRENT_PROFIT, CURRENT_CASH, CURRENT_TAX, PRO_NAME, PRO_ADDRESS, PARTNER_NAME, PARTNER_PHONE, PRO_REMARK, PRO_RELATION, PRO_YEAR, PRO_INDUSTRY, INSTITUTION, SUMMARY, GUARANTEE_RATE, InstituTion2, GUARANT_AGREE_WORD, GUARANT_AGREE_NUMBER, APPLICATION_INCREMENT, PEOPLE, BANK_INTEREST, DELETENO, BUSINESS_LOCATION_PLACE, BRANCH_SUPERVISOR, ANNUAL_INTEREST_RATE, IMPLEMENT_ROCEDURES, CONCLUSION, MARGIN_RATIO, INSTITUTION3, MATE_ID_CARD, APPLY_TIME1, INSPECTION_TIME, SUSPEND_TIME, PROJECT_STOP_REASON, PERIODS_NUM, MEETING_CONCLUSION, ANNUAL_RATE, MARGIN_RATIO_HY, INSPECTION_MONTHS, CHARGING_METHOD, CONTRACT_CHECKER, REPAYMENT_PLAN_HY, PREMIUM_TO_BE_PAID, COMPENSATORY_STATE, AUDIT_PASS, RELATION_PROJECT, IS_MICRO, PROJECT_FROM, GUARANT_AGREE_NUMBER1, BUSINESS_LOCATION_PLACE_CODE, APPROVAL_TYPE, REVOLVING_LOAN, APPLY_NO, EVERY_AVERAGE_MONEY, LENDING_METHOD, MATCH_TAG, GUARANTEE_RATE_EXTENSION,IS_OLD_SYSTEM)"+
                "values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,?)",
        updateSql = "UPDATE ND_PROJECT_INFO SET PROJECT_NAME = ? ,PRO_CLASS = ? ,APPLY_COVERAGE = ? ,APPLY_TIME = ? ,MONEY_USED = ? ,PRO_TYPE = ? ,Bank = ? ,BANK_NAME = ? ,CUSTOM_MANAGER = ? ,MANAGER_PHONE = ? ,BANK_SUP = ? ,SUP_PHONE = ? ,REPAY_SOURCE = ? ,CUSTOMER_ID = ? ,PRODUCT_NAME = ? ,CREDIT_TIME = ? ,CREDIT_TIME_START = ? ,CREDIT_TIME_END = ? ,CREDIT_MONEY = ? ,COVERAGE_MONEY = ? ,YEAR_GUARANT_RATE = ? ,BAIL_RATE = ? ,PRO_STATUS = ? ,GUARANT_AGREE_NO = ? ,AGREE_TIME_START = ? ,AGREE_TIME_END = ? ,DEPART = ? ,DEPART_MANAGER = ? ,ACCEPT_STATUS = ? ,ASSURE_MSG = ? ,MANAGER_A = ? ,MANAGER_B = ? ,MANAGER_C = ? ,MANAGER_D = ? ,RISK_TYPE = ? ,CHECK_TIME = ? ,Office = ? ,CHIEF_AUDITOR = ? ,REMARK_MSG = ? ,CREATE_NAME = ? ,CREATE_BY = ? ,CREATE_DATE = ? ,UPDATE_NAME = ? ,UPDATE_BY = ? ,UPDATE_DATE = ? ,SYS_ORG_CODE = ? ,SYS_COMPANY_CODE = ? ,BPM_STATUS = ? ,PROJECT_CODE = ? ,PROJECT_NO = ? ,PRJ_NAME_FULL_PINYIN = ? ,PRJ_NAME_SIMPLE_PINYIN = ? ,REVIEW_SECRETARY = ? ,CUSTOMER_NAME = ? ,AREA = ? ,ADRESS = ? ,COPANY_DEPART = ? ,BUSINESS = ? ,IS_BLACKLIST = ? ,BLACKLIST_MSG = ? ,CUSTOMER_TYPE = ? ,CUSTOMER_SOURCE = ? ,DELETE_FLAG = ? ,CUSTOMER_SUBJECT_NATURE = ? ,INDUSTRY = ? ,SET_TIME = ? ,MASTER = ? ,MASTER_PHONE = ? ,WORK_ADDRESS = ? ,OPERATER = ? ,OPERATER_PHONE = ? ,OPERATER_JOB = ? ,LEGAL_REP = ? ,LEGAL_REP_PHONE = ? ,REGIST_MONEY = ? ,CIQ_NO = ? ,WORKER_NUMBER = ? ,HANDLE_TIME = ? ,MASTER_IDCARD = ? ,LEGAL_REP_IDCARD = ? ,BUSINESS_NO = ? ,ORG_NO = ? ,TAX_REGIST_NO = ? ,CREDIT_CARD_NO = ? ,SECOND_BUSINESS = ? ,BANK_ACCOUNT_NO = ? ,CREDIT_GRADE = ? ,CREDIT_GRADE_ORG = ? ,COMPANY_IMP_MSG = ? ,INDUSTRY_CODE = ? ,SEX = ? ,BIRTHDAY = ? ,EDUCATE = ? ,ID_CARD = ? ,REGIST_DEPART = ? ,WORK_DEPART = ? ,PHONE = ? ,FAMILY_TEL = ? ,INCOME = ? ,WORK_COMPANY = ? ,WORK_INDUSTRY = ? ,WORK_JOB = ? ,WORK_PHONE = ? ,MARRAY = ? ,MATE_NAME = ? ,MATE_PROFESSION = ? ,ESTATE = ? ,PERSONAL_IMP_MSG = ? ,FINANCE_PERIOD = ? ,TOTAL_ASSET = ? ,TOTAL_DEBT = ? ,ASSET_RATIO = ? ,CAPITAL_COLLECTION = ? ,NET_ASSET = ? ,NET_ASSET_RATIO = ? ,LAST_INCOME = ? ,LAST_PROFIT = ? ,LAST_CASH = ? ,LAST_TAX = ? ,CURRENT_INCOME = ? ,CURRENT_PROFIT = ? ,CURRENT_CASH = ? ,CURRENT_TAX = ? ,PRO_NAME = ? ,PRO_ADDRESS = ? ,PARTNER_NAME = ? ,PARTNER_PHONE = ? ,PRO_REMARK = ? ,PRO_RELATION = ? ,PRO_YEAR = ? ,PRO_INDUSTRY = ? ,INSTITUTION = ? ,SUMMARY = ? ,GUARANTEE_RATE = ? ,InstituTion2 = ? ,GUARANT_AGREE_WORD = ? ,GUARANT_AGREE_NUMBER = ? ,APPLICATION_INCREMENT = ? ,PEOPLE = ? ,BANK_INTEREST = ? ,DELETENO = ? ,BUSINESS_LOCATION_PLACE = ? ,BRANCH_SUPERVISOR = ? ,ANNUAL_INTEREST_RATE = ? ,IMPLEMENT_ROCEDURES = ? ,CONCLUSION = ? ,MARGIN_RATIO = ? ,INSTITUTION3 = ? ,MATE_ID_CARD = ? ,APPLY_TIME1 = ? ,INSPECTION_TIME = ? ,SUSPEND_TIME = ? ,PROJECT_STOP_REASON = ? ,PERIODS_NUM = ? ,MEETING_CONCLUSION = ? ,ANNUAL_RATE = ? ,MARGIN_RATIO_HY = ? ,INSPECTION_MONTHS = ? ,CHARGING_METHOD = ? ,CONTRACT_CHECKER = ? ,REPAYMENT_PLAN_HY = ? ,PREMIUM_TO_BE_PAID = ? ,COMPENSATORY_STATE = ? ,AUDIT_PASS = ? ,RELATION_PROJECT = ? ,IS_MICRO = ? ,PROJECT_FROM = ? ,GUARANT_AGREE_NUMBER1 = ? ,BUSINESS_LOCATION_PLACE_CODE = ? ,APPROVAL_TYPE = ? ,REVOLVING_LOAN = ? ,APPLY_NO = ? ,EVERY_AVERAGE_MONEY = ? ,LENDING_METHOD = ? ,MATCH_TAG = ? ,GUARANTEE_RATE_EXTENSION = ?,IS_OLD_SYSTEM = ? WHERE ID = ?",
        findMigratedIdListSql = "SELECT ID FROM ND_PROJECT_INFO WHERE ID = ?",
        seq = 0
)
public class NdProjectInfo extends AbstractBusiness{

    public NdProjectInfo(DbUtil sourceDbUtil, DbUtil targetDbUtil, SourceBusinessData sourceData, ProgramArgument programArgument, String projectId) throws SQLException {
        super(sourceDbUtil, targetDbUtil, sourceData, programArgument, projectId);
    }

    @Override
    public void migrate() throws Exception {

        try{
            Map btitembasicSingle = sourceData.getBtItemBasic().get(0);
            Map btEnterpriseBasic = sourceData.getBtEnterpriseBasic().get(0);
            Map btEnterpriseInquiry = sourceData.getBtEnterpriseInquiryList().get(0);
            Map btFlowFundItemExtent = sourceData.getBtFlowFundItemExtent().get(0);

            try {
                String sourceId = btitembasicSingle.get("ITEMNO").toString();
                int needMigratedResult = this.needMigrated(sourceId);
                if(needMigratedResult == 0) {
                    return;
                }

                // 单条插入或更新

                if (needMigratedResult == 1) {
                   if(getRigOrWro(btEnterpriseBasic.get("PROCHARACTER"))){
                       //自然人
                       this.targetDbUtil.updateByParams(updateSql, this.buildPersonValues(btitembasicSingle,btEnterpriseBasic,btEnterpriseInquiry,btFlowFundItemExtent), true);
                   }else{
                       //法人
                       this.targetDbUtil.updateByParams(updateSql, this.buildEnterpriseValues(btitembasicSingle,btEnterpriseBasic,btEnterpriseInquiry,btFlowFundItemExtent), true);
                   }
                    // 批量插入或更新 和 单条插入或更新 二选一
//             this.batchUpdateValues.add(this.buildValues(row));
                } else {
                    if(getRigOrWro(btEnterpriseBasic.get("PROCHARACTER"))){
                        this.targetDbUtil.updateByParams(insertSql, this.buildPersonValues(btitembasicSingle,btEnterpriseBasic,btEnterpriseInquiry,btFlowFundItemExtent));
                    }else{
                        this.targetDbUtil.updateByParams(insertSql, this.buildEnterpriseValues(btitembasicSingle,btEnterpriseBasic,btEnterpriseInquiry,btFlowFundItemExtent));

                    }
                    // 批量插入或更新 和 单条插入或更新 二选一
//             this.batchInsertValues.add(this.buildValues(row));
                }

            } catch (Exception e) {
                throw new Exception(String.format("项目详情表[%s]迁移失败:%s\n", btitembasicSingle.get("ITEMNO"), e.getMessage()));
            }
        } catch (Exception e) {
            throw new Exception("项目详情表数据迁移过程中出现异常,:" + e.getMessage());
        }



    }


   //自然人
    public List buildPersonValues(Map btitembasicSingle,Map btEnterpriseBasic,Map btEnterpriseInquiry,Map btFlowFundItemExtent) throws SQLException, ScriptException {
        List values = new ArrayList();
        List wordAndNumber =getGuarantAgreeWordAndNumber(btitembasicSingle.get("ASSUCONTRACTNO"));

        //ID	主键
        values.add(btitembasicSingle.get("ITEMNO").toString());
        values.add(btEnterpriseBasic.get("PRONAME"));
        // PRO_CLASS 项目品种
        values.add(1);
        //APPLY_COVERAGE	申请保额|万
        values.add(Tool.covertToBigDecimal(btitembasicSingle.get("ASKASSURESUM")));
        //APPLY_TIME	申请期限
        values.add(BusinessTool.convertApplyTimeToMonth(btitembasicSingle.get("ASSUREIERM")));
        //MONEY_USED	借款用途
        values.add(btitembasicSingle.get("ASSUREPURPOSE"));
        // PRO_TYPE	 新老旧项目 需要自查
        values.add(btitembasicSingle.get("IS_LATEST").toString().equals("1") ? "新增项目":"续保项目");
        // Bank	借款银行 字典编码
        values.add(DictTool.getTargetDictCode(Bank.class, btitembasicSingle.get("LOANBANK")));
        //BANK_NAME	开户银行名称
        values.add(btEnterpriseBasic.get("NEWTEPROCERCODE"));
        //CUSTOM_MANAGER	客户经理
        values.add(btitembasicSingle.get("BANKMANAGER"));
        //MANAGER_PHONE	联系电话（客户经理）
        values.add(btitembasicSingle.get("MANATEL"));
        //BANK_SUP	主管行长
        values.add(btitembasicSingle.get("BANKPRESIDENT"));
        //SUP_PHONE	联系电话
        values.add(btitembasicSingle.get("PRESITEL"));
        //REPAY_SOURCE	还款来源方式
        values.add(btitembasicSingle.get("REQUITESOURCE"));
        //CUSTOMER_ID	客户id
        values.add(btitembasicSingle.get("ENTERPRISENO"));
        //PRODUCT_NAME	产品名称 字典编码
        values.add(DictTool.getTargetDictCode(ProductType.class,btitembasicSingle.get("PRODUCECLASS")));
        // CREDIT_TIME	授信期限
        values.add(BusinessTool.convertApplyTimeToMonth(btitembasicSingle.get("AUDITTERM")));
        //CREDIT_TIME_START	授信开始时间
        values.add(btitembasicSingle.get("AUDITTIME"));
        //CREDIT_TIME_END	授信到期时间
        values.add(btitembasicSingle.get("ASSUMPTIME"));
        //CREDIT_MONEY	授信额|万
        values.add(btitembasicSingle.get("TRANSACASSURESUM"));
        //COVERAGE_MONEY	在保额|万
        values.add(btitembasicSingle.get("CURRASSURESUM"));
        //YEAR_GUARANT_RATE	年担保费率%
        values.add(btitembasicSingle.get("ASSURERATE"));
        //BAIL_RATE	保证金比率
        values.add(btitembasicSingle.get("PROMISRATE"));
        // PRO_STATUS	项目状态
        values.add(btitembasicSingle.get("ITEMSTATUS"));
        //GUARANT_AGREE_NO	担保协议编号
        values.add(btitembasicSingle.get("ASSUCONTRACTNO"));
        //AGREE_TIME_START	协议开始时间
        values.add(btitembasicSingle.get("CONTBEGINTIME"));
        //AGREE_TIME_END	协议到期时间
        values.add(btitembasicSingle.get("CONTENDTIME"));
        //DEPART	所属部门
        values.add(DictTool.getTargetDictCode(SysOrgCode.class, btitembasicSingle.get("ORGCODE")));
        //DEPART_MANAGER	部门经理
        values.add(BusinessTool.getEmpNameByEmpCode(btitembasicSingle.get("MANAGERT")));
        // ACCEPT_STATUS	受理状态
        values.add(null);
        //ASSURE_MSG	拟反担保措施
        values.add(Tool.replaceBrFlagStr(Tool.decodeUnicode(btitembasicSingle.get("PLEDGECTLMEMO"))));
        //MANAGER_A	A经理
        values.add(btitembasicSingle.get("ITEMSTATUS") !=null && !btitembasicSingle.get("ITEMSTATUS")
                .equals("") && btitembasicSingle.get("ITEMSTATUS").toString().equals("0") ? btitembasicSingle.get("ACCEPTMAN")
                :btitembasicSingle.get("MANAGERA"));
        //MANAGER_B	B经理
        values.add(btitembasicSingle.get("MANAGERB"));
        //MANAGER_C	C经理
        values.add(btitembasicSingle.get("MANAGERC"));
        //MANAGER_D	D经理
        values.add(btitembasicSingle.get("MANAGERD"));
        //RISK_TYPE	风险分类
        values.add(btitembasicSingle.get("RISKLEVEL"));
        //CHECK_TIME	保后检查间隔
        values.add(btitembasicSingle.get("CHECKINTMONTH"));
        // Office	事务所 字典编码
        values.add(DictTool.getTargetDictCode(Office.class,btitembasicSingle.get("ACCOUNTCORP")));
        // CHIEF_AUDITOR	审计组长
        values.add(btitembasicSingle.get("ACCOUNTMAN"));
        //REMARK_MSG	备注信息
        values.add(btitembasicSingle.get("MEMOINFO"));
        // CREATE_NAME	创建人名称
        values.add(null);
        //CREATE_BY	创建人登录名称
        values.add(btitembasicSingle.get("ACCEPTMAN"));
        //CREATE_DATE	创建日期
        values.add(btitembasicSingle.get("CREATE_TIME"));
        //UPDATE_NAME	更新人名称
        values.add(null);
        //UPDATE_BY	更新人登录名称
        if(wordAndNumber.get(0) == null || wordAndNumber.get(1) == null){
            values.add(1);
        }else{
            values.add(null);
        }
        //UPDATE_DATE	更新日期
        values.add(btitembasicSingle.get("MODIFY_TIME"));
        // SYS_ORG_CODE	所属部门
        values.add(DictTool.getTargetDictCode(SysOrgCode.class, btitembasicSingle.get("ORGCODE")));
        //SYS_COMPANY_CODE	所属公司
        values.add(null);
        //BPM_STATUS	流程状态
        values.add(1);
        //PROJECT_CODE	项目代码
        values.add(btitembasicSingle.get("ITEMCODE"));
        //PROJECT_NO	项目编码
        values.add(null);
        // TODO PRJ_NAME_FULL_PINYIN	项目名全拼音
        values.add(null);
        // TODO PRJ_NAME_SIMPLE_PINYIN	项目名简拼音
        values.add(null);
        //REVIEW_SECRETARY	评审秘书
        values.add(null);
        //CUSTOMER_NAME	客户名称
        values.add(btEnterpriseBasic.get("PRONAME"));
        //AREA	所属区域
        values.add(btEnterpriseInquiry.get("CLIENTAREA")== null || btEnterpriseInquiry.get("CLIENTAREA").equals("")? "湖南省" :
                DictTool.getTargetDictCode(AreaCode.class,btEnterpriseInquiry.get("CLIENTAREA")));
        //ADRESS	注册地址
        values.add(btEnterpriseInquiry.get("PROADDRESS"));
        //COPANY_DEPART	性质 btEnterpriseBasic.get("PROCHARACTER")
        values.add(null);
        //BUSINESS	业务
        values.add(Tool.decodeUnicode(btEnterpriseInquiry.get("MOSTLY_DEALAREA")));
        //IS_BLACKLIST	黑名单
        values.add(null);
        //BLACKLIST_MSG	黑名单说明
        values.add(null);
        //CUSTOMER_TYPE	客户类型
        values.add(null);
        //CUSTOMER_SOURCE	客户来源
        values.add(null);
        //DELETE_FLAG	删除标志(0正常,1删除)
        values.add(0);
        //CUSTOMER_SUBJECT_NATURE	客户主体性质
        values.add("自然人");
        // INDUSTRY	行业归属 数据字典
        values.add(DictTool.getTargetDictCode(Industry.class, btEnterpriseInquiry.get("AFFTRADE")));
        //SET_TIME	成立时间 btEnterpriseBasic.get("ESTABLISHTIME")
        values.add(null);
        //MASTER	实际控制人 btEnterpriseBasic.get("LINKMAN")
        values.add(null);
        //MASTER_PHONE	联系手机 btEnterpriseBasic.get("LINKMANTEL")
        values.add(null);
        //WORK_ADDRESS	办公地址
        values.add(btEnterpriseInquiry.get("EMAIL"));
        //OPERATER	经办人名 btEnterpriseBasic.get("FAX")
        values.add(null);
        //OPERATER_PHONE	联系电话（经办人） btEnterpriseBasic.get("LINKMANCELLPHONE")
        values.add(null);
        //OPERATER_JOB	经办人职务 btEnterpriseBasic.get("LINKMANDUTY")
        values.add(null);
        //LEGAL_REP	法人代表 btEnterpriseBasic.get("CORPORATION")
        values.add(null);
        //LEGAL_REP_PHONE	法人电话 btEnterpriseBasic.get("CORPORATIONTEL")
        values.add(null);
        //REGIST_MONEY	注册资本（万） btEnterpriseBasic.get("REGISTCAPITAL")
        values.add(null);
        //CIQ_NO	海关编码 btEnterpriseBasic.get("EMAIL")
        values.add(null);
        //WORKER_NUMBER	从业人数 Tool.covertToBigDecimal(btEnterpriseBasic.get("STAFFCOUNT"))
        values.add(null);
        //HANDLE_TIME	受理时间
        values.add(btitembasicSingle.get("ACCEPTTIME"));
        //MASTER_IDCARD	实际控制人身份证编码 btEnterpriseBasic.get("CONROLMANID")
        values.add(null);
        //LEGAL_REP_IDCARD	法人代表身份证编码 btEnterpriseBasic.get("CORPORATIONID")
        values.add(null);
        //BUSINESS_NO	营业执照编号||社会信用代码 btEnterpriseBasic.get("BUSIREGISTCODE")
        values.add(null);
        //ORG_NO	组织机构代码证编号 btEnterpriseBasic.get("REGORGCODE")
        values.add(null);
        //TAX_REGIST_NO	税务登记证号 btEnterpriseBasic.get("TAXREGISTCODE")
        values.add(null);
        //CREDIT_CARD_NO	贷款卡号 btEnterpriseBasic.get("LOANCARDCODE")
        values.add(null);
        //SECOND_BUSINESS	兼营业务 btEnterpriseBasic.get("DOUBLE_DEALAREA")
        values.add(null);
        //BANK_ACCOUNT_NO	开户银行账号 btEnterpriseInquiry.get("NEWTEPROCOGTIME")
        values.add(null);
        //CREDIT_GRADE	信用评价等级 btEnterpriseInquiry.get("CREDIT_ASSESS_GRADE")
        values.add(null);
        //CREDIT_GRADE_ORG	信用评级机构 btEnterpriseInquiry.get("NULLPATENTCODE")
        values.add(null);
        //COMPANY_IMP_MSG	企业重要情况 Tool.decodeUnicode(btEnterpriseBasic.get("IMPORTANTINFO"))
        values.add(null);
        //INDUSTRY_CODE	行业code
        values.add(DictTool.getTargetDictCode(IndustryCode.class,btEnterpriseInquiry.get("AFFTRADE")));
        //SEX	客户性别
        values.add(btEnterpriseInquiry.get("FACTCOLLECTCAPITAL"));
        //BIRTHDAY	出生日期
        values.add(btEnterpriseBasic.get("ESTABLISHTIME"));
        //EDUCATE	客户学历
        values.add(btEnterpriseInquiry.get("FAX"));
        //ID_CARD	身份证号
        values.add(btEnterpriseInquiry.get("BUSIREGISTCODE"));
        //REGIST_DEPART	登记机关
        values.add(btEnterpriseInquiry.get("LOGADDRESS"));
        // WORK_DEPART	单位性质
        values.add(Tool.covertToBigDecimal(btEnterpriseInquiry.get("ZIPCODE")));
        //PHONE	联系手机
        values.add(btEnterpriseInquiry.get("LINKMANCELLPHONE"));
        //FAMILY_TEL	家庭电话
        values.add(btEnterpriseInquiry.get("LINKMANDUTY"));
        // INCOME	月收入元
        values.add(BusinessTool.conMoeny((btEnterpriseInquiry.get("CORPORATIONTEL"))));
        //WORK_COMPANY	工作单位
        values.add(btEnterpriseInquiry.get("SUBJECTIONRELATION").toString());
        //WORK_INDUSTRY	从事行业
        values.add(DictTool.getTargetDictCode(Industry.class,btEnterpriseInquiry.get("AFFTRADE")));
        //WORK_JOB	担任职务
        values.add(btEnterpriseInquiry.get("CORPORATION"));
        //WORK_PHONE	办公电话
        values.add(btEnterpriseInquiry.get("LINKMANTEL"));
        //MARRAY	婚姻状况
        values.add(btEnterpriseInquiry.get("REGISTCAPITAL"));
        //MATE_NAME	配偶姓名
        values.add(btEnterpriseInquiry.get("LINKMAN"));
        //MATE_PROFESSION	配偶职业
        values.add(btEnterpriseInquiry.get("MATEDUTYINFO"));
        //ESTATE	财产情况
        values.add(btEnterpriseInquiry.get("DOUBLE_DEALAREA"));
        //PERSONAL_IMP_MSG	个人重要情况
        values.add(btEnterpriseBasic.get("IMPORTANTINFO"));
        //FINANCE_PERIOD	财务报告期
        values.add(btFlowFundItemExtent.get("CURRENTLYMONTH"));
        //TOTAL_ASSET	资产总额|万
        values.add(Tool.covertToBigDecimal(btFlowFundItemExtent.get("CURRENTLYASSETTOTAL")));
        //TOTAL_DEBT	负债总额|万
        values.add(Tool.covertToBigDecimal(btFlowFundItemExtent.get("CURRENYLYOWESTOTAL")));
        //ASSET_RATIO	资产负债率%
        values.add(Tool.covertToBigDecimal(btFlowFundItemExtent.get("ASSETOWESRATE")));
        //CAPITAL_COLLECTION	实收资本|万
        values.add(Tool.covertToBigDecimal(btFlowFundItemExtent.get("REALGAINCAPITAL")));
        //NET_ASSET	有效净资产|万
        values.add(Tool.covertToBigDecimal(btFlowFundItemExtent.get("EFFICIENCYASSET")));
        //NET_ASSET_RATIO	担保金额占有效净资产比率%
        values.add(Tool.covertToBigDecimal(btFlowFundItemExtent.get("ASSUREEFFICIENCYRATE")));
        //LAST_INCOME	上年营业收入
        values.add(Tool.covertToBigDecimal(btFlowFundItemExtent.get("LASTYEARSELLTOTAL")));
        //LAST_PROFIT	净利润额
        values.add(Tool.covertToBigDecimal(btFlowFundItemExtent.get("LASTYEARPROFIT")));
        //LAST_CASH	经营活动净现金流量
        values.add(Tool.covertToBigDecimal(btFlowFundItemExtent.get("LASTYEARFARECASHFLOW")));
        //LAST_TAX	纳税额
        values.add(Tool.covertToBigDecimal(btFlowFundItemExtent.get("LASTYEARINTERESTRATE")));
        //CURRENT_INCOME	本期营业收入
        values.add(Tool.covertToBigDecimal(btFlowFundItemExtent.get("THISYEARSELLTOTAL")));
        //CURRENT_PROFIT	净利润额
        values.add(Tool.covertToBigDecimal(btFlowFundItemExtent.get("THISYEARPROFIT")));
        //CURRENT_CASH	经营活动净现金流量
        values.add(Tool.covertToBigDecimal(btFlowFundItemExtent.get("THISYEARSFARECASHFLOW")));
        //CURRENT_TAX	纳税额
        values.add(Tool.covertToBigDecimal(btFlowFundItemExtent.get("THISYEARINTERESTRATE")));
        //PRO_NAME	经营项目名称
        values.add(btFlowFundItemExtent.get("MANAGENAME"));
        //PRO_ADDRESS	经营地址
        values.add(btFlowFundItemExtent.get("MANADDRESS"));
        //PARTNER_NAME	合作伙伴姓名
        values.add(btFlowFundItemExtent.get("MANREGISTCODE"));
        //PARTNER_PHONE	联系电话（合作伙伴）
        values.add(btFlowFundItemExtent.get("MANBANKACCOUNT"));
        //PRO_REMARK	项目说明
        values.add(Tool.decodeUnicode(btFlowFundItemExtent.get("MANAREA")));
        // TODO PRO_RELATION	借款人与经营项目关系  字典(老系统没有字段)
        values.add(null);
        //PRO_YEAR	从业年限
        values.add(Tool.covertToBigDecimal(btFlowFundItemExtent.get("MANYEARS")));
        //  PRO_INDUSTRY	所属行业 字典
        values.add(btEnterpriseInquiry.get("AFFTRADE"));
        // INSTITUTION	合作机构ID 字典
        values.add(DictTool.getTargetDictCode(InstituTion2.class,btitembasicSingle.get("EXTKIND")));
        //SUMMARY	机构摘要
        values.add(null);
        //GUARANTEE_RATE	担保费率|%
        values.add(Tool.covertToBigDecimal(btitembasicSingle.get("ASSURERATE")));
        //InstituTion2	合作机构
        values.add(btitembasicSingle.get("EXTKIND").toString());
        // GUARANT_AGREE_WORD	担保协议字 截取第一位[]   ASSUCONTRACTNO
        values.add(wordAndNumber.get(0));
        // GUARANT_AGREE_NUMBER	担保协议号 截取第二位[]  ASSUCONTRACTNO
        values.add(wordAndNumber.get(1));

        //APPLICATION_INCREMENT	本次同意增量
        values.add(null);
        //PEOPLE	追债人
        values.add(null);
        //BANK_INTEREST	银行利息
        values.add(null);
        //DELETENO	删除标记
        values.add(0);
        // BUSINESS_LOCATION_PLACE	经营场所所在地
        values.add(DictTool.getTargetDictCode(AreaCode.class,btEnterpriseInquiry.get("CLIENTAREA")));
        //BRANCH_SUPERVISOR	分公司监管人员
        values.add(null);
        //ANNUAL_INTEREST_RATE	年利率
        values.add(null);
        //IMPLEMENT_ROCEDURES	手续落实情况
        values.add(Tool.decodeUnicode(btitembasicSingle.get("PLEDGECTLMEMO")));
        //CONCLUSION	评审会结论
        values.add(null);
        //MARGIN_RATIO	保证金比例|%
        values.add(Tool.covertToBigDecimal(btitembasicSingle.get("PROMISRATE")));
        //INSTITUTION3	分公司
        values.add(null);
        //MATE_ID_CARD	"身份证号（配偶）
        values.add(btEnterpriseInquiry.get("CORPORATIONCODE"));
        //APPLY_TIME1
        values.add(null);
        //INSPECTION_TIME	评审时间
        values.add(null);
        //SUSPEND_TIME	项目暂缓终结时间
        values.add(null);
        //PROJECT_STOP_REASON	项目封存原因
        values.add(null);
        //PERIODS_NUM	期数
        values.add(null);
        // MEETING_CONCLUSION	立项评审会结论 等于》=3赋值1
        int Meeting = Integer.parseInt(btitembasicSingle.get("ITEMSTATUS").toString());
        values.add(Meeting >= 3 ? 1 : 0 );
        // ANNUAL_RATE	年担保费率
        values.add(Tool.covertToBigDecimal(btitembasicSingle.get("ASSURERATE")));
        // MARGIN_RATIO_HY	还款方式
        values.add(this.sourceData.getRepayType());
        //INSPECTION_MONTHS	保后检查间隔月数
        values.add(btitembasicSingle.get("CHECKINTMONTH"));
        //CHARGING_METHOD	收费方式
        values.add(null);
        //CONTRACT_CHECKER	合同审核人员
        values.add(null);
        //REPAYMENT_PLAN_HY	还款计划
        values.add(null);
        //PREMIUM_TO_BE_PAID	待收担保费
        values.add(0);
        //COMPENSATORY_STATE	代偿状态
        values.add(null);
        //AUDIT_PASS	有效项目
        values.add(0);
        //RELATION_PROJECT	关联项目id
        values.add(null);
        //IS_MICRO	是否微农贷
        values.add(null);
        //PROJECT_FROM	来源
        values.add(1);
        //GUARANT_AGREE_NUMBER1
        values.add(null);
        //BUSINESS_LOCATION_PLACE_CODE	经营场所所在地编码
        values.add(null);
        //APPROVAL_TYPE	审批类型
        values.add(null);
        //REVOLVING_LOAN	循环放款标识
        values.add(null);
        //APPLY_NO	申请流水号
        values.add(null);
        //EVERY_AVERAGE_MONEY	自定义还款计划
        values.add(null);
        //LENDING_METHOD	放款方式
        values.add(null);
        //MATCH_TAG	比对标记
        values.add(null);
        //GUARANTEE_RATE_EXTENSION	担保费率延伸字段
        values.add(null);
        //IS_OLD_SYSTEM	是否老系统数据(0/1)
        values.add(1);
        return  values;
    }
    //法人
    public List buildEnterpriseValues(Map btitembasicSingle,Map btEnterpriseBasic,Map btEnterpriseInquiry,Map btFlowFundItemExtent) throws SQLException, ScriptException {
        List values = new ArrayList();
        List wordAndNumber =getGuarantAgreeWordAndNumber(btitembasicSingle.get("ASSUCONTRACTNO"));
        //ID	主键
        values.add(btitembasicSingle.get("ITEMNO").toString());
        values.add(btEnterpriseBasic.get("PRONAME"));
        // PRO_CLASS 项目品种 法人 自然人
        values.add(0);
        //APPLY_COVERAGE	申请保额|万
        values.add(Tool.covertToBigDecimal(btitembasicSingle.get("ASKASSURESUM").toString()));
        //APPLY_TIME	申请期限
        values.add(BusinessTool.convertApplyTimeToMonth(btitembasicSingle.get("ASSUREIERM")));
        //MONEY_USED	借款用途
        values.add(btitembasicSingle.get("ASSUREPURPOSE"));
        // PRO_TYPE	 新老旧项目 需要自查
        values.add(btitembasicSingle.get("IS_LATEST").toString().equals("1") ? "新增项目":"续保项目");
        // Bank	借款银行 字典编码
        values.add(DictTool.getTargetDictCode(Bank.class, btitembasicSingle.get("LOANBANK")));
        //BANK_NAME	开户银行名称
        values.add(btEnterpriseInquiry.get("NEWTEPROCERCODE"));
        //CUSTOM_MANAGER	客户经理
        values.add(btitembasicSingle.get("BANKMANAGER"));
        //MANAGER_PHONE	联系电话（客户经理）
        values.add(btitembasicSingle.get("MANATEL"));
        //BANK_SUP	主管行长
        values.add(btitembasicSingle.get("BANKPRESIDENT"));
        //SUP_PHONE	联系电话
        values.add(btitembasicSingle.get("PRESITEL"));
        //REPAY_SOURCE	还款来源方式
        values.add(btitembasicSingle.get("REQUITESOURCE"));
        //CUSTOMER_ID	客户id
        values.add(btitembasicSingle.get("ENTERPRISENO"));
        //PRODUCT_NAME	产品名称 字典编码
        values.add(DictTool.getTargetDictCode(ProductType.class,btitembasicSingle.get("PRODUCECLASS")));
        // CREDIT_TIME	授信期限
        values.add(BusinessTool.convertApplyTimeToMonth(btitembasicSingle.get("AUDITTERM")));
        //CREDIT_TIME_START	授信开始时间
        values.add(btitembasicSingle.get("AUDITTIME"));
        //CREDIT_TIME_END	授信到期时间
        values.add(btitembasicSingle.get("ASSUMPTIME"));
        //CREDIT_MONEY	授信额|万
        values.add(btitembasicSingle.get("TRANSACASSURESUM").toString());
        //COVERAGE_MONEY	在保额|万
        values.add(btitembasicSingle.get("CURRASSURESUM"));
        //YEAR_GUARANT_RATE	年担保费率%
        values.add(btitembasicSingle.get("ASSURERATE"));
        //BAIL_RATE	保证金比率
        values.add(btitembasicSingle.get("PROMISRATE"));
        // PRO_STATUS	项目状态
        values.add(btitembasicSingle.get("ITEMSTATUS"));
        //GUARANT_AGREE_NO	担保协议编号
        values.add(btitembasicSingle.get("ASSUCONTRACTNO"));
        //AGREE_TIME_START	协议开始时间
        values.add(btitembasicSingle.get("CONTBEGINTIME"));
        //AGREE_TIME_END	协议到期时间
        values.add(btitembasicSingle.get("CONTENDTIME"));
        //DEPART	所属部门
        values.add(DictTool.getTargetDictCode(SysOrgCode.class, btitembasicSingle.get("ORGCODE")));
        //DEPART_MANAGER	部门经理
        values.add(BusinessTool.getEmpNameByEmpCode(btitembasicSingle.get("MANAGERT")));
        // ACCEPT_STATUS	受理状态
        values.add(null);
        //ASSURE_MSG	拟反担保措施
        values.add(Tool.replaceBrFlagStr(Tool.decodeUnicode(btitembasicSingle.get("PLEDGECTLMEMO"))));
        //MANAGER_A	A经理
        values.add(btitembasicSingle.get("ITEMSTATUS") !=null && !btitembasicSingle.get("ITEMSTATUS")
                .equals("") && btitembasicSingle.get("ITEMSTATUS").toString().equals("0") ? btitembasicSingle.get("ACCEPTMAN")
                :btitembasicSingle.get("MANAGERA"));
        //MANAGER_B	B经理
        values.add(btitembasicSingle.get("MANAGERB"));
        //MANAGER_C	C经理
        values.add(btitembasicSingle.get("MANAGERC"));
        //MANAGER_D	D经理
        values.add(btitembasicSingle.get("MANAGERD"));
        //RISK_TYPE	风险分类
        values.add(btitembasicSingle.get("RISKLEVEL"));
        //CHECK_TIME	保后检查间隔
        values.add(btitembasicSingle.get("CHECKINTMONTH"));
        // Office	事务所 字典编码
        values.add(DictTool.getTargetDictCode(Office.class,btitembasicSingle.get("ACCOUNTCORP")));
        // CHIEF_AUDITOR	审计组长
        values.add(btitembasicSingle.get("ACCOUNTMAN"));
        //REMARK_MSG	备注信息
        values.add(btitembasicSingle.get("MEMOINFO"));
        // CREATE_NAME	创建人名称
        values.add(null);
        //CREATE_BY	创建人登录名称
        values.add(btitembasicSingle.get("ACCEPTMAN"));
        //CREATE_DATE	创建日期
        values.add(btitembasicSingle.get("CREATE_TIME"));
        //UPDATE_NAME	更新人名称
        values.add(null);
        //UPDATE_BY	更新人登录名称
        if(wordAndNumber.get(0) == null || wordAndNumber.get(1) == null){
            values.add(1);
        }else{
            values.add(null);
        }
        //UPDATE_DATE	更新日期
        values.add(btitembasicSingle.get("MODIFY_TIME"));
        // SYS_ORG_CODE	所属部门
        values.add(DictTool.getTargetDictCode(SysOrgCode.class, btitembasicSingle.get("ORGCODE")));
        //SYS_COMPANY_CODE	所属公司
        values.add(null);
        //BPM_STATUS	流程状态
        values.add(1);
        //PROJECT_CODE	项目代码
        values.add(btitembasicSingle.get("ITEMCODE"));
        //PROJECT_NO	项目编码
        values.add(null);
        // TODO PRJ_NAME_FULL_PINYIN	项目名全拼音
        values.add(null);
        // TODO PRJ_NAME_SIMPLE_PINYIN	项目名简拼音
        values.add(null);
        //REVIEW_SECRETARY	评审秘书
        values.add(null);
        //CUSTOMER_NAME	客户名称
        values.add(btEnterpriseBasic.get("PRONAME"));
        //AREA	所属区域
        values.add(btEnterpriseInquiry.get("CLIENTAREA") == null || btEnterpriseInquiry.get("CLIENTAREA").equals("") ? "湖南省" : DictTool.getTargetDictCode(AreaCode.class,btEnterpriseInquiry.get("CLIENTAREA")));
        //ADRESS	注册地址
        values.add(btEnterpriseInquiry.get("PROADDRESS"));
        //COPANY_DEPART	性质
        values.add( btEnterpriseBasic.get("PROCHARACTER"));
        //BUSINESS	业务
        values.add(Tool.decodeUnicode(btEnterpriseInquiry.get("MOSTLY_DEALAREA")));
        //IS_BLACKLIST	黑名单
        values.add(null);
        //BLACKLIST_MSG	黑名单说明
        values.add(null);
        //CUSTOMER_TYPE	客户类型
        values.add(null);
        //CUSTOMER_SOURCE	客户来源
        values.add(null);
        //DELETE_FLAG	删除标志(0正常,1删除)
        values.add(0);
        //CUSTOMER_SUBJECT_NATURE	客户主体性质
        values.add("法人");
        // INDUSTRY	行业归属 数据字典
        values.add(DictTool.getTargetDictCode(Industry.class, btEnterpriseInquiry.get("AFFTRADE")));
        //SET_TIME	成立时间
        values.add( btEnterpriseBasic.get("ESTABLISHTIME"));
        //MASTER	实际控制人
        values.add(btEnterpriseInquiry.get("LINKMAN"));
        //MASTER_PHONE	联系手机
        values.add(btEnterpriseInquiry.get("LINKMANTEL"));
        //WORK_ADDRESS	办公地址
        values.add(btEnterpriseInquiry.get("PROADDRESS"));
        //OPERATER	经办人名
        values.add(btEnterpriseInquiry.get("FAX"));
        //OPERATER_PHONE	联系电话（经办人）
        values.add(btEnterpriseInquiry.get("LINKMANCELLPHONE"));
        //OPERATER_JOB	经办人职务
        values.add(btEnterpriseInquiry.get("LINKMANDUTY"));
        //LEGAL_REP	法人代表
        values.add(btEnterpriseInquiry.get("CORPORATION"));
        //LEGAL_REP_PHONE	法人电话
        values.add(btEnterpriseInquiry.get("CORPORATIONTEL"));
        //REGIST_MONEY	注册资本（万）
        values.add(btEnterpriseInquiry.get("REGISTCAPITAL"));
        //CIQ_NO	海关编码
        values.add(btEnterpriseInquiry.get("EMAIL"));
        //WORKER_NUMBER	从业人数
        values.add(Tool.covertToBigDecimal(btEnterpriseInquiry.get("STAFFCOUNT")));
        //HANDLE_TIME	受理时间
        values.add(btitembasicSingle.get("ACCEPTTIME"));
        //MASTER_IDCARD	实际控制人身份证编码
        values.add(btEnterpriseInquiry.get("CONROLMANID"));
        //LEGAL_REP_IDCARD	法人代表身份证编码
        values.add(btEnterpriseInquiry.get("CORPORATIONID"));
        //BUSINESS_NO	营业执照编号||社会信用代码
        values.add(btEnterpriseInquiry.get("BUSIREGISTCODE"));
        //ORG_NO	组织机构代码证编号
        values.add(btEnterpriseInquiry.get("REGORGCODE"));
        //TAX_REGIST_NO	税务登记证号
        values.add(btEnterpriseInquiry.get("TAXREGISTCODE"));
        //CREDIT_CARD_NO	贷款卡号
        values.add(btEnterpriseInquiry.get("LOANCARDCODE"));
        //SECOND_BUSINESS	兼营业务
        values.add(btEnterpriseInquiry.get("DOUBLE_DEALAREA"));
        //BANK_ACCOUNT_NO	开户银行账号
        values.add(btEnterpriseInquiry.get("NEWTEPROCOGTIME"));
        //CREDIT_GRADE	信用评价等级
        values.add(btEnterpriseInquiry.get("CREDIT_ASSESS_GRADE"));
        //CREDIT_GRADE_ORG	信用评级机构
        values.add(btEnterpriseInquiry.get("NULLPATENTCODE"));
        //COMPANY_IMP_MSG	企业重要情况
        values.add(Tool.decodeUnicode(btEnterpriseBasic.get("IMPORTANTINFO")));
        //INDUSTRY_CODE	行业code
        values.add(DictTool.getTargetDictCode(IndustryCode.class,btEnterpriseInquiry.get("AFFTRADE")));
        //SEX	客户性别 btEnterpriseInquiry.get("FACTCOLLECTCAPITAL")
        values.add(null);
        //BIRTHDAY	出生日期  btEnterpriseBasic.get("ESTABLISHTIME")
        values.add(null);
        //EDUCATE	客户学历
        values.add(null);
        //ID_CARD	身份证号 btEnterpriseInquiry.get("BUSIREGISTCODE")
        values.add(null);
        //REGIST_DEPART	登记机关 btEnterpriseInquiry.get("LOGADDRESS")
        values.add(null);
        // WORK_DEPART	单位性质 Tool.covertToBigDecimal(btEnterpriseInquiry.get("ZIPCODE"))
        values.add(null);
        //PHONE	联系手机 btEnterpriseInquiry.get("LINKMANCELLPHONE")
        values.add(null);
        //FAMILY_TEL	家庭电话 btEnterpriseInquiry.get("LINKMANDUTY")
        values.add(null);
        // INCOME	月收入元 Tool.covertToBigDecimal(btEnterpriseInquiry.get("CORPORATIONTEL"))
        values.add(null);
        //WORK_COMPANY	工作单位  btEnterpriseInquiry.get("SUBJECTIONRELATION").toString()
        values.add(null);
        //WORK_INDUSTRY	从事行业
        values.add(DictTool.getTargetDictCode(Industry.class,btEnterpriseInquiry.get("AFFTRADE")));
        //WORK_JOB	担任职务 btEnterpriseInquiry.get("CORPORATION")
        values.add(null);
        //WORK_PHONE	办公电话 btEnterpriseInquiry.get("LINKMANTEL")
        values.add(null);
        //MARRAY	婚姻状况 btEnterpriseInquiry.get("REGISTCAPITAL")
        values.add(null);
        //MATE_NAME	配偶姓名 btEnterpriseInquiry.get("LINKMAN")
        values.add(null);
        //MATE_PROFESSION	配偶职业 btEnterpriseInquiry.get("MATEDUTYINFO")
        values.add(null);
        //ESTATE	财产情况 btEnterpriseInquiry.get("DOUBLE_DEALAREA")
        values.add(null);
        //PERSONAL_IMP_MSG	个人重要情况 btEnterpriseBasic.get("IMPORTANTINFO")
        values.add(null);
        //FINANCE_PERIOD	财务报告期
        values.add(btFlowFundItemExtent.get("CURRENTLYMONTH"));
        //TOTAL_ASSET	资产总额|万
        values.add(Tool.covertToBigDecimal(btFlowFundItemExtent.get("CURRENTLYASSETTOTAL")));
        //TOTAL_DEBT	负债总额|万
        values.add(Tool.covertToBigDecimal(btFlowFundItemExtent.get("CURRENYLYOWESTOTAL")));
        //ASSET_RATIO	资产负债率%
        values.add(Tool.covertToBigDecimal(btFlowFundItemExtent.get("ASSETOWESRATE")));
        //CAPITAL_COLLECTION	实收资本|万
        values.add(Tool.covertToBigDecimal(btFlowFundItemExtent.get("REALGAINCAPITAL")));
        //NET_ASSET	有效净资产|万
        values.add(Tool.covertToBigDecimal(btFlowFundItemExtent.get("EFFICIENCYASSET")));
        //NET_ASSET_RATIO	担保金额占有效净资产比率%
        values.add(Tool.covertToBigDecimal(btFlowFundItemExtent.get("ASSUREEFFICIENCYRATE")));
        //LAST_INCOME	上年营业收入
        values.add(Tool.covertToBigDecimal(btFlowFundItemExtent.get("LASTYEARSELLTOTAL")));
        //LAST_PROFIT	净利润额
        values.add(Tool.covertToBigDecimal(btFlowFundItemExtent.get("LASTYEARPROFIT")));
        //LAST_CASH	经营活动净现金流量
        values.add(Tool.covertToBigDecimal(btFlowFundItemExtent.get("LASTYEARFARECASHFLOW")));
        //LAST_TAX	纳税额
        values.add(Tool.covertToBigDecimal(btFlowFundItemExtent.get("LASTYEARINTERESTRATE")));
        //CURRENT_INCOME	本期营业收入
        values.add(Tool.covertToBigDecimal(btFlowFundItemExtent.get("THISYEARSELLTOTAL")));
        //CURRENT_PROFIT	净利润额
        values.add(Tool.covertToBigDecimal(btFlowFundItemExtent.get("THISYEARPROFIT")));
        //CURRENT_CASH	经营活动净现金流量
        values.add(Tool.covertToBigDecimal(btFlowFundItemExtent.get("THISYEARSFARECASHFLOW")));
        //CURRENT_TAX	纳税额
        values.add(Tool.covertToBigDecimal(btFlowFundItemExtent.get("THISYEARINTERESTRATE")));
        //PRO_NAME	经营项目名称
        values.add(btFlowFundItemExtent.get("MANAGENAME"));
        //PRO_ADDRESS	经营地址
        values.add(btFlowFundItemExtent.get("MANADDRESS"));
        //PARTNER_NAME	合作伙伴姓名
        values.add(btFlowFundItemExtent.get("MANREGISTCODE"));
        //PARTNER_PHONE	联系电话（合作伙伴）
        values.add(btFlowFundItemExtent.get("MANBANKACCOUNT"));
        //PRO_REMARK	项目说明
        values.add(btFlowFundItemExtent.get("MANAREA"));
        // TODO PRO_RELATION	借款人与经营项目关系  字典(老系统没有字段)
        values.add(null);
        //PRO_YEAR	从业年限
        values.add(Tool.covertToBigDecimal(btFlowFundItemExtent.get("MANYEARS")));
        //  PRO_INDUSTRY	所属行业 字典
        values.add(btEnterpriseInquiry.get("AFFTRADE"));
        // INSTITUTION	合作机构ID 字典
        values.add(DictTool.getTargetDictCode(InstituTion2.class,btitembasicSingle.get("EXTKIND")));
        //SUMMARY	机构摘要
        values.add(null);
        //GUARANTEE_RATE	担保费率|%
        values.add(Tool.covertToBigDecimal(btitembasicSingle.get("ASSURERATE").toString()));
        //InstituTion2	合作机构
        values.add(btitembasicSingle.get("EXTKIND").toString());


        values.add(wordAndNumber.get(0));
        // GUARANT_AGREE_NUMBER	担保协议号 截取第二位[]  ASSUCONTRACTNO
        values.add(wordAndNumber.get(1));
        //APPLICATION_INCREMENT	本次同意增量
        values.add(null);
        //PEOPLE	追债人
        values.add(null);
        //BANK_INTEREST	银行利息
        values.add(null);
        //DELETENO	删除标记
        values.add(0);
        // BUSINESS_LOCATION_PLACE	经营场所所在地
        values.add(DictTool.getTargetDictCode(AreaCode.class,btEnterpriseInquiry.get("CLIENTAREA")));
        //BRANCH_SUPERVISOR	分公司监管人员
        values.add(null);
        //ANNUAL_INTEREST_RATE	年利率
        values.add(null);
        //IMPLEMENT_ROCEDURES	手续落实情况
        values.add(Tool.decodeUnicode(btitembasicSingle.get("PLEDGECTLMEMO")));
        //CONCLUSION	评审会结论
        values.add(null);
        //MARGIN_RATIO	保证金比例|%
        values.add(Tool.covertToBigDecimal(btitembasicSingle.get("PROMISRATE")));
        //INSTITUTION3	分公司
        values.add(null);
        //MATE_ID_CARD	"身份证号（配偶） btEnterpriseInquiry.get("CORPORATIONCODE")
        values.add(null);
        //APPLY_TIME1
        values.add(null);
        //INSPECTION_TIME	评审时间
        values.add(null);
        //SUSPEND_TIME	项目暂缓终结时间
        values.add(null);
        //PROJECT_STOP_REASON	项目封存原因
        values.add(null);
        //PERIODS_NUM	期数
        values.add(null);
        // MEETING_CONCLUSION	立项评审会结论 等于》=3赋值1
        int Meeting = Integer.parseInt(btitembasicSingle.get("ITEMSTATUS").toString());
        values.add(Meeting >= 3 ? 1 : 0 );
        // ANNUAL_RATE	年担保费率
        values.add(Tool.covertToBigDecimal(btitembasicSingle.get("ASSURERATE")));
        // MARGIN_RATIO_HY	还款方式
        values.add(sourceData.getRepayType());
        //INSPECTION_MONTHS	保后检查间隔月数
        values.add(btitembasicSingle.get("CHECKINTMONTH"));
        //CHARGING_METHOD	收费方式
        values.add(null);
        //CONTRACT_CHECKER	合同审核人员
        values.add(null);
        //REPAYMENT_PLAN_HY	还款计划
        values.add(null);
        //PREMIUM_TO_BE_PAID	待收担保费  已经核保放款就设置为0 》不会自动计算，没核保放款就设置null 》重新计算
        values.add(0);
        //COMPENSATORY_STATE	代偿状态
        values.add(null);
        //AUDIT_PASS	有效项目
        values.add(0);
        //RELATION_PROJECT	关联项目id
        values.add(null);
        //IS_MICRO	是否微农贷
        values.add(null);
        //PROJECT_FROM	来源
        values.add(1);
        //GUARANT_AGREE_NUMBER1
        values.add(null);
        //BUSINESS_LOCATION_PLACE_CODE	经营场所所在地编码
        values.add(null);
        //APPROVAL_TYPE	审批类型
        values.add(null);
        //REVOLVING_LOAN	循环放款标识
        values.add(null);
        //APPLY_NO	申请流水号
        values.add(null);
        //EVERY_AVERAGE_MONEY	自定义还款计划
        values.add(null);
        //LENDING_METHOD	放款方式
        values.add(null);
        //MATCH_TAG	比对标记
        values.add(null);
        //GUARANTEE_RATE_EXTENSION	担保费率延伸字段
        values.add(null);
        //IS_OLD_SYSTEM	是否老系统数据(0/1)
        values.add(1);
        return  values;
    }


public List getGuarantAgreeWordAndNumber(Object assucontractno){
        List result = new ArrayList();
        result.add(null);
        result.add(null);
        if(assucontractno == null || assucontractno.toString().equals("")){
            return result;
        }
    Pattern p = Pattern.compile("\\d+");
    Matcher m = p.matcher(assucontractno.toString());
    int i =0;
    while(m.find()){
        try {
            Integer group =Integer.parseInt(m.group());
            if(i == 0){
                result.set(i,group);
            }else if(i == 1){
                result.set(i,group);
            }
            i++;
        }catch (Exception e){
            break;
        }

    }
    return result;
}

}
